// pages/personal/personal.js
const app = getApp();
Page({

  /**
   * 页面的初始数据
   */
  data: {
    /* 用户信息 */
    userInfo_share:{},
    /* tabContentData */
    contentIndex:0,
    tabContentData:[
      {
        name:'名片夹',
        id:'0',
        emptyWord:'暂时还没有浏览过的名片，快去浏览吧~',
        showListEmpty:false,
        data:[],   //列表数据
        reqFnName:'getUserBrowseLog',  //获取列表数据方法名
        page:1,  //页码
        pageSize:10, //每页条数
      },
      {
        name:'订单列表',
        id:'1',
        emptyWord:'暂时还没有订单，快去下单吧~',
        showListEmpty:false,
        data:[],   //列表数据
        reqFnName:'getOrders',  //获取列表数据方法名
        page:1,  //页码
        pageSize:10, //每页条数
      }
    ],
    /* 浏览记录数据 */
    BrowseLogArgs:{
      page:1,  //页码
      pageSize:10, //每页条数
      userid:''  //
    },
    /* 浏览用户数据 */
    BrowseLogData:[],
    /* 订单参数 */
    orderArgs:{
      page:1,
      pageSize:10,
      status:'', //状态:0、未支付，1、已支付，2、取消订单（不传查看全部订单）
      userid:''  //用户id
    },
    /* 订单状态 */
    stateDatas:{
      '0':{
        class:'state_dfk',
        txt:'待付款'
      },
      '1':{
        class:'state_common',
        txt:'已支付'
      },
      '2':{
        class:'state_yqx',
        txt:'已取消订单'
      }
    },
    /*  */
    singlePlugid:'',
    singleName:''
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {

  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },
  /*  */
  startmessage: function (e) {
    //console.log('startmessage-----------singlecell');
    //console.log(e);
    wx.showLoading({
      title: '',
      mask:true
    })
  },
  /*  */
  completemessage: function (e) {
    console.log(e);
    wx.hideLoading();
    if(e.detail.errcode=='0'){
      //
      wx.showModal({
        title:'提示',
        content:`添加好友的微信消息已发送`,
        showCancel:false
      });
    }
  },
  /* 跳转到小程序详情 */
  goToMiniDetail:function(e){
    let { info } = e.currentTarget.dataset;
    wx.navigateTo({
      url:'/pages/miniDetail/miniDetail',
      success:res=>{
        res.eventChannel.emit('fromPersonalPage',{
          order_id:info.order_id,
          pageFrom:'personal'
        })
      }
    })
  },
  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    /* 获取用户信息 */
    this.setData({
      userInfo_share: app.globalData.get_userInfo()
    });
    //console.log(this.data.userInfo_share);
    //从订单详情页返回
    if(app.globalData.fromOMToPersonal){
      //
      app.globalData.fromOMToPersonal =false;
      //
      this.setData({
        contentIndex:1
      });
      //
      this.pageContentRefresh();
      return;
    }
    //订单支付失败返回
    if(app.globalData.fromOMPayFailToEmployee){
      //
      app.globalData.fromOMPayFailToEmployee = false;
      //
      this.setData({
        contentIndex:1
      });
      //
      this.pageContentRefresh();
      return;
    }
    //从支付成功页返回
    if(app.globalData.fromPSToPE){
      //
      app.globalData.fromPSToPE = false;
      //
      this.setData({
        contentIndex:1
      });
      //
      this.pageContentRefresh();
      return;
    }
    //从小程序详情页返回
    if(app.globalData.fromMDToPE){
      //
      app.globalData.fromMDToPE = false;
      //
      this.setData({
        contentIndex:1
      });
      //
      this.pageContentRefresh();
      return;
    }
    //切换显示列表无数据时请求数据
    if(!this.data.tabContentData[this.data.contentIndex*1].data.length){
      this[this.data.tabContentData[this.data.contentIndex*1].reqFnName]();
      return;
    }
  },
  /* 跳转到订单详情 */
  goToOrderDetail:function(e){
    let { info } = e.currentTarget.dataset;
    //console.log(info);
    wx.navigateTo({
      url: '/pages/orderModify/orderModify',
      success: res => {
        res.eventChannel.emit('fromPersonPageForOrder', {
          order_id:info.order_id,
          pageFrom:'personal'
        });
      }
    })
  },
  /* 切换列表 */
  changeTabContent:function(e){
    //
    let { index,info } = e.currentTarget.dataset;
    //
    this.setData({
      contentIndex:index
    });
    //
    let tabContentData = this.data.tabContentData;
    tabContentData.forEach(item=>{
      item.showListEmpty = false;
    });
    this.setData({
      tabContentData:tabContentData
    });
    //切换显示列表无数据时请求数据
    if(!this.data.tabContentData[this.data.contentIndex*1].data.length){
      this[this.data.tabContentData[this.data.contentIndex*1].reqFnName]();
      return;
    }
    //
  },
  /* 获取订单数据 */
  getOrders:function(){
    //
    this.setData({
      'orderArgs.page':this.data.tabContentData[this.data.contentIndex*1].page,
      'orderArgs.userid':this.data.userInfo_share.userid
    });
    //
    wx.showLoading({
      title:'获取订单',
      mask:true
    });
    //
    return app.globalData.$http.call(this,{
      api:"/getOrders",
      data:this.data.orderArgs
    }).then(res=>{
      console.log(res)
      if (res.data.code == '1') {
        if(res.data.body.length){
          let tmpData = this.data.tabContentData[this.data.contentIndex*1].data;
          let page = this.data.tabContentData[this.data.contentIndex*1].page;
          res.data.body.forEach(item=>{
            //
            item.price = app.globalData.showPrice(item.price);
            //
            item.instime = app.globalData.dateFormatYMDHM(item.instime);
            tmpData.push(item);
          });
          page++;
          //
          this.setData({
            [`tabContentData[${this.data.contentIndex*1}].page`]:page,
            [`tabContentData[${this.data.contentIndex*1}].data`]:tmpData,
            [`tabContentData[${this.data.contentIndex*1}].showListEmpty`]:false
          });
        }
        //列表为空
        if(!res.data.body.length&&!this.data.tabContentData[this.data.contentIndex*1].data.length){
          //
          this.setData({
            [`tabContentData[${this.data.contentIndex*1}].showListEmpty`]:true
          });
        }
        wx.hideLoading();
        return Promise.resolve()
      } else {
        wx.hideLoading();
        wx.showToast({
          icon: 'none',
          title: '获取用户订单数据失败'
        });
        return Promise.reject('获取用户订单数据失败');
      }
    }).catch(err=>{
      wx.hideLoading();
      wx.showToast({
        icon: 'none',
        title: '获取用户订单数据失败'
      });
      //console.log(err);
      return Promise.reject('获取用户订单数据失败');
    })
  },
  /* 添加微信 */
  addEmployeeWechat:function(e){
    let { index,info } = e.currentTarget.dataset;
    console.log(index);
    console.log(info);
    //
    wx.showLoading({
      title:'',
      mask:true
    });
    //
    app.globalData.getCorpUserConfigId.call(this,info.userid).then(config_id=>{
      this.setData({
        'singlePlugid': config_id
      });
      wx.hideLoading();
      //
      let index;
      let tmpArr = this.data.tabContentData[this.data.contentIndex*1].data.filter((item,i)=>{
        if(item.userid === info.userid){
          index = i;
          return true;
        }
      });
      //
      if(tmpArr.length){
        this.setData({
          'singleName':tmpArr[0].name,
          [`tabContentData[${this.data.contentIndex*1}].data[${index}].plugid`]:config_id
        });
      }
    }).catch(err=>{
      wx.hideLoading();
      wx.showModal({
        title:'提示',
        content:''+err,
        showCancel:false
      });
    });
    /*wx.downloadFile({
      url: info.qr_code,
      success: function (res) {
        wx.previewImage({
          urls:[res.tempFilePath]
        })
      }
    }) */
  },
  /* 拨打电话 */
  makeEmployeePhone:function(e){
    let { info } = e.currentTarget.dataset;
    //
    wx.makePhoneCall({
      phoneNumber: info.mobile,
    })
  },
  /* 获取用户浏览记录 */
  getUserBrowseLog:function(){
    //
    this.setData({
      'BrowseLogArgs.page':this.data.tabContentData[this.data.contentIndex*1].page,
      'BrowseLogArgs.userid':this.data.userInfo_share.userid
    });
    //
    wx.showLoading({
      title:'获取名片夹数据',
      mask:true
    });
    //
    return app.globalData.$http.call(this,{
      api:"/getUserBrowseLog",
      data:this.data.BrowseLogArgs
    }).then(res=>{
      console.log(res)
      if (res.data.code == '1') {
        //
        //
        if(res.data.body.length){
          let tmpData = this.data.tabContentData[this.data.contentIndex*1].data;
          let page = this.data.tabContentData[this.data.contentIndex*1].page;
          // res.data.body.forEach(item=>{
          //   item.plugid = '';
          //   item.instime = app.globalData.dateFormatYMDHM(item.instime)
          //   tmpData.push(item);
          // });
          return res.data.body.reduce((init,item)=>{
            //console.log(item);
            item.instime = app.globalData.dateFormatYMDHM(item.instime)
            tmpData.push(item);
            return new Promise((resolve,reject)=>{
              return init.then(()=>{
                return app.globalData.getCorpUserConfigId.call(this,item.userid).then(config_id=>{
                  item.config_id = config_id
                  resolve();
                }).catch(()=>{
                  resolve();
                })
              }).catch(err=>{
                resolve()
              });
            });
          },Promise.resolve()).then(()=>{
            page++;
            //
            this.setData({
              [`tabContentData[${this.data.contentIndex*1}].page`]:page,
              [`tabContentData[${this.data.contentIndex*1}].data`]:tmpData,
              [`tabContentData[${this.data.contentIndex*1}].showListEmpty`]:false
            });
            //
            wx.hideLoading();
          })
        }else{
          wx.hideLoading();
        }
        //列表为空
        if(!res.data.body.length&&!this.data.tabContentData[this.data.contentIndex*1].data.length){
          //
          this.setData({
            [`tabContentData[${this.data.contentIndex*1}].showListEmpty`]:true
          });
          wx.hideLoading();
        }
        return Promise.resolve()
      } else {
        wx.hideLoading();
        wx.showToast({
          icon: 'none',
          title: '获取用户浏览记录失败'
        });
        return Promise.reject('获取用户浏览记录失败');
      }
    }).catch(err=>{
      wx.hideLoading();
      //console.log(err);
      wx.showToast({
        icon: 'none',
        title: '获取用户浏览记录失败'
      });
      return Promise.reject('获取用户浏览记录失败');
    })
  },
  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {
    const pages = getCurrentPages();
    if(pages[pages.length - 1].route==='pages/personal/personal'){
      wx.switchTab({
        url: '/pages/index/index',
      })
    }
  },
  /*  */
  pageContentRefresh:function(){
    this.setData({
      [`tabContentData[${this.data.contentIndex*1}].page`]:1,
      [`tabContentData[${this.data.contentIndex*1}].data`]:[],
    });
    //
    this[this.data.tabContentData[this.data.contentIndex*1].reqFnName]().then(()=>{
      wx.stopPullDownRefresh({
        complete: (res) => {},
      });
    }).catch(()=>{
      wx.stopPullDownRefresh({
        complete: (res) => {},
      });
    });
  },
  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {
    //
    this.pageContentRefresh();
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {
    this[this.data.tabContentData[this.data.contentIndex*1].reqFnName]();
  }
})